<?php
namespace App\Http\Services;

use Illuminate\Support\Facades\Redis;

/**
 * 首冲活动设置用户缓存
 */
class FirstRechargeServices extends CommonServices
{
    /**
     * 缓存的key 前缀
     *
     * @var string
     */
    private $cacheKeyPrefix = 'ACTIVITY:FIRST:RECHARGE:USER:CACHE:';

    /**
     * 构造函数
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * 获取cache的key名字
     *
     * @param int $userId
     * @return string
     */
    private function getCacheKey(int $userId): string
    {
        return $this->cacheKeyPrefix . $userId;
    }

    /**
     * 当用户领取所有的礼包之后，要设置缓存, 隐藏活动入口
     *
     * @param int $userId
     * @return bool
     */
    public function setCache(int $userId): bool
    {
        if (!$userId) {
            return false;
        }

        $cacheKey = $this->getCacheKey($userId);
        Redis::set($cacheKey, 1);
        return true;
    }

    /**
     * 用户是否领取了所有礼包 true=没有 false=已经领取
     *
     * @param int $userId
     * @return bool
     */
    public function checkUserStatus(int $userId): bool
    {
        if (!$userId) {
            return true;
        }

        $cacheKey = $this->getCacheKey($userId);
        if (!(Redis::get($cacheKey))) {
            return true;
        }

        return false;
    }
}